#pragma once

#include "logcplus_common.h"
#include "logcplus_layout.h"

namespace logcplus
{
    #define STRACE(fmt, args...) logcplus_debug_print(LOGMCRO, LOGCPLUS_TRACE, fmt, ##args)
    #define SDEBUG(fmt, args...) logcplus_debug_print(LOGMCRO, LOGCPLUS_DEBUG, fmt, ##args)
    #define SINFO( fmt, args...) logcplus_debug_print(LOGMCRO, LOGCPLUS_INFO,  fmt, ##args)
    #define SWARN( fmt, args...) logcplus_debug_print(LOGMCRO, LOGCPLUS_WARN,  fmt, ##args)
    #define SERROR(fmt, args...) logcplus_debug_print(LOGMCRO, LOGCPLUS_ERROR, fmt, ##args)
    #define SCLEAN(fmt, args...) logcplus_clean_print(LOGMCRO, LOGCPLUS_INFO,  fmt, ##args)    

    void logcplus_init_debug();
    void logcplus_debug_print(const char* File, const char* Function,const int Line, int Level,const char* Fmt, ...);
    void logcplus_clean_print(const char* File, const char* Function,const int Line, int Level,const char* Fmt, ...);
}